package com.ihr360.payroll.model.dto.salary.projection;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.ihr360.commons.model.type.NumOperation;
import com.ihr360.payroll.model.dto.salary.basecode.SalaryFieldType;
import com.ihr360.payroll.model.vo.SalaryFieldCategoryVo;
import com.ihr360.payroll.type.FieldTaxType;
import com.ihr360.rest.core.Ihr360Projection;

import java.util.Date;

/**
 * @author Eric
 */
@Ihr360Projection(name = "salaryFieldTypeTable", types = {SalaryFieldType.class})
public interface SalaryFieldTypeProjection {

    Long getId();

    String getCode();

    String getName();

    String getEngName();

    NumOperation getCompanycostop();

    NumOperation getPersonalsalaryop();

    Date getEffectiveAt();

    Date getInvalidAt();

    int getIndexno();

    FieldTaxType getFieldTaxType();

    @JsonProperty("category")
    SalaryFieldCategoryVo getSalaryTaxTypeVO();

    boolean isGenTypeTotalField();

}
